package com.area.service;

import com.area.entity.Area;
import com.area.entity.vo.AreaVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.code.domain.PageParam;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * BASIC_地区 服务类
 * </p>
 *
 * @author guanfenga@yonyou.com
 * @since 2022-08-17
 */
public interface IAreaService extends IService<Area> {
    /**
     * 查询区划
     * @param area
     * @return
     */
    List<Area> queryAreaList(Area area);

    /**
     * 查询区块分页
     * @param pageParam
     * @param area
     * @return
     */
    IPage<Area> queryAreaPage(PageParam<Area> pageParam, Area area);

    /**
     * 新增区域
     * @param area
     * @return
     */
    int saveArea(Area area);

    /**
     * 修改区域
     * @param area
     * @return
     */
    int updateArea(Area area);

    List<Map<String,Object>> findAreaPage(Integer pageBefore, Integer limit);

    /**
     * 分页查询
     * @param page
     * @param limit
     * @param area
     * @return
     */
    List<Area> findAreaPage(Integer page, Integer limit, Area area);

    /**
     * 向Redis 推送所有的区划数据
     * @return
     */
    boolean getAreaToRedis();

    /**
     * 前端框架通过Redis进行分页
     * @param areaVo
     * @return
     */
    List<Area> queryAreaLayUiRedisPage(AreaVo areaVo);

    /**
     * 查询所有区块信息
     * 用于react练习用
     * @return
     */
    List<Area> queryBasicAreaAll();
}
